package ru.pb.game.data.templates;

import org.apache.log4j.Logger;

import ru.pb.game.objects.model.inventory.emuns.EQMIPEMENT_SLOT;
import ru.pb.game.objects.model.items.enums.ITEM_TYPE;
import ru.pb.global.utils.StatsSet;

/**
 * @author Felixx
 *         Этот класс содержит общую инфу о любых итемах (weapon, armor, cupon).<BR>
 *         Базовый класс для:
 *         <LI>ArmorTemplate</LI>
 *         <LI>CouponTemplate</LI>
 *         <LI>WeaponTemplate</LI>
 */
public abstract class AbstractItemTemplate
{
	protected Logger _log = Logger.getLogger(getClass());

	protected int _flags; // ItemFlags

	private final int _id;
	private final String _name;
	private final boolean _isStackable, _temporal, _isEquipable;
	private final EQMIPEMENT_SLOT _itemSlot;
	protected ITEM_TYPE _itemType;

	protected AbstractItemTemplate(StatsSet set)
	{
		_id = set.getInt("id");
		_name = set.getString("name");
		_isStackable = set.getBool("stackable", false);
		_temporal = set.getBool("temporal", false);
		_itemSlot = set.getEnum("EQMIPEMENT_SLOT", EQMIPEMENT_SLOT.class);
		_isEquipable = set.getBool("isEquipable", true);
	}

	public int getItemId()
	{
		return _id;
	}

	public String getItemName()
	{
		return _name;
	}

	public boolean isStackable()
	{
		return _isStackable;
	}

	public boolean isTemporal()
	{
		return _temporal;
	}

	public EQMIPEMENT_SLOT getItemSlot()
	{
		return _itemSlot;
	}

	public boolean isEquipable()
	{
		return _isEquipable;
	}

	public ITEM_TYPE getItemType()
	{
		return _itemType;
	}
}